/**
 * 响应体
 */
export interface IResponse<T = any> {
  /**
   * 响应码
   */
  code: number;
  /**
   * 响应消息
   */
  message: string;
  /**
   * 错误码
   */
  error: number | null;
  /**
   * 数据负载
   */
  data: T;
}

export interface IPage<T> {
  /**
   * 记录集合
   */
  list: T[];
  /**
   * 记录总数
   */
  total: number;
}

/**
 * 分页响应体
 */
export type IPageResponse<T> = IResponse<IPage<T>>;

/**
 * 分页对象
 */
export interface PageObject {
  /**
   * 当前页码
   */
  page: number;
  /**
   * 总页数
   */
  pageCount: number;
  /**
   * 记录总数
   */
  total: number;
  /**
   * 分页大小
   */
  pageSize: number;
}

/**
 * 分页参数
 */
export interface IPageBaseParams {
  /**
   * 页码
   */
  page?: number;
  /**
   * 分页大小
   */
  pageSize?: number;
}

/**
 * 响应状态
 */
export const ResponseState = {
  /**
   * 成功
   */
  OK: 0,
  /**
   * 失败
   */
  ERROR: -1,
};
